import re

from langchain_core.tools import tool

@tool
def quote_detection(text: str) -> bool:
    """判断文本中是否包含古代引号或书名号
    Args:
        text: 要检测的文本
    """
    quote_pattern = r"「.*?」"
    book_pattern = r"〈.*?〉"
    if re.search(quote_pattern, text) or re.search(book_pattern, text):
        return True
    return False

@tool
def quote_extract(text: str) -> str:
    """从文本中提取引号内文本。
    Args:
        text: 要提取的文本
    """
    quote_pattern = r"「(.*?)」"  # 只捕获引号内的内容
    quotes = re.findall(quote_pattern, text)
    if quotes:
        return quotes
    else:
        return [None]

@tool
def regex_match(pattern: str, text: str) -> str:
    """使用给定的正则表达式匹配目标文本并返回匹配结果。

    Args:
        pattern: 正则表达式模式
        text: 目标文本
    """
    matches = re.findall(pattern, text)
    if matches:
        return f"匹配结果: {matches}"
    else:
        return "未找到匹配项"

@tool
def text_length(text: str) -> int:
    """计算文本的长度。
    Args:
        text: 要计算的文本
    """
    return len(text)